System availability is crucial for mission critical systems such as finance systems, electronic commerce systems, etc. Mission critical systems typically require uninterrupted 24-hour service. Financial loss may result if the system is not available. Unfortunately, such systems often have complex and varying service rules and need to be upgraded frequently. After the service rule is changed, the system may need to be restarted for upgrading, which can interrupt the availability of the system.
Techniques of hot deployment of software have been created in order to avoid any loss due to the restarting of the system for upgrading. “Hot deployment” refers to the upgrading of software during the operation of a software without restarting the system running the software. Chinese Patent Application No. 200610123883.0 suggests an existing hot deployment method in which a server to be upgraded is backed up while providing a service to the outside and is then switched to the upgraded web server at the end of upgrading so as to appear as a method of hot deployment to the outside (e.g., clients making requests of the server). At least two servers are required for hot deployment in such a hot deployment method.
The foregoing patent applicant document additionally discusses the following hot deployment method:
In a Browser/Server (B/S) architecture-based platform typically adopted for an existing system, a Java-based Web server is typically adopted in an architecture model of MVC (Model, View, and Control), which is divided into several layers of view, control, and model. In particular:
The view layer refers to a user interaction interface, i.e., a Web interface, and typically is a static text file or a Java Server Page (JSP). According to the JavaEE specification, a Web application can be put into effect without being restarted upon modification at the view layer.
The control layer is configured to receive a request from a user and to match the model layer and the view layer to jointly resolve the request of the user. Since this part is independent of any service logic and involves only forwarding the request from the view layer to the corresponding model layer, the control layer will be changed only by a forwarding configuration instead of a forwarding rule. If the forwarding configuration is changed, then it will be sufficient to reload just a new or modified configuration file without restarting the entire system.
The model layer is configured to process a service flow/status and a service rule and refers to a service logic module. At the traditional Web server, the model layer is loaded into a class loader of the same Web application. A loaded class to be updated has to be reloaded into the class loader of the Web application. As a consequence, the module has to be added/updated/deleted, which necessitates a restarting of the Web application. The solution disclosed in Application No. 200610123883.0 suggests for use of the traditional Web server based upon the MVC, so that an open service gateway architecture is arranged in the server in the B/S architecture, and the model layer of the server in the B/S architecture is arranged in respective sub-modules of the open service gateway architecture. Since the respective sub-modules of the open service gateway architecture are provided with their own class loaders, when a certain sub-module is changed, it will be sufficient to restart only the class loader specific to the sub-module and thereby avoid restarting of the class loader of the entire Web application (i.e., hot deployment of the class loader with the Web application is performed).
A number of issues remain in the existing hot deployment methods. In the first method for hot deployment involving backing up the entire server as another server, an additional server will be required. However, adding an additional server could be costly. In the second method for hot deployment involving the introduction of the open service gateway architecture, the model layer has to be arranged in the respective sub-modules of the open service gateway architecture, and when the model layer is changed, the respective sub-modules of the open service gateway architecture still have to be restarted despite the possibility of hot deployment of the class loader of the Web application. As a consequence, this method does not result in full hot deployment. Moreover, in order to apply this method of hot employment, the existing system has to be modified considerably, which could yield problems of low stability and poor security.